package com.foreknow.demo10;

public class B extends A {
    int x = 2;

    //方法重写
    public void fun() {
        System.out.println("这是子类中的方法fun......");
    }

    public static void main(String[] args) {
        B b = new B();
        b.fun(); //调用的是子类重写之后的fun方法
        System.out.println(b.x); //2

        A a = new A();
        a.fun();
        System.out.println(a.x);

        A x = new B(); //父类的引用指向子类的对象
        x.fun(); //调用的是子类的方法 调用的是子类重写后的方法
        System.out.println(x.x); //1  x是A类型 ，因为属性不能重写，所以输出的是A类中的x
    }
}
